#ifndef _cesium_random_source_hpp_
#define _cesium_random_source_hpp_

#include "platform.hpp"

namespace Cesium {

/** Concept for a source of randomness.  The only requirement is
 *  the ability to provide uniformly distributed random values
 *  between 0 and 1.
 */
class RandomSource {
public:
    /** Must be default constructable. */
    RandomSource();

    /** Must be copyable. */
    RandomSource(const RandomSource& cpy);

    /** Generate a random float in the range [0,1]. */
    float32 random();
}; // class RandomSource

} // namespace Cesium

#endif //_cesium_random_source_hpp_
